[Hadoop] 分布式资源调度YARN 三

YARN单机环境搭建、Yarn常用命令介绍、常见基于Yarn的计算框架(MapReduce On Yarn、Spark)

Posted by 李玉坤 on 2017-07-11

YARN单机环境搭建

  1. mapred-site.xml

    1
    2
    3
    4
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
  2. yarn-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>

    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop:38088</value>
    </property>
    # web界面防火墙 38088 50070 开放这两个端口
    # yarn.resourcemanager.webapp.address修改8088为38088
  3. yarn-env.sh
    export YARN_PID_DIR=/home/hadoop/tmp

  4. 启动YARN相关的进程
    sbin/start-yarn.sh

  5. 验证
    jps
     ResourceManager
     NodeManager
    或者浏览器:
     http://hadoop000:8088


6. 停止YARN相关的进程
sbin/stop-yarn.sh

Yarn常用命令介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
• yarn application
• 列出所有Application
yarn application -list
• 根据Application状态过滤
yarn application -list -appStatus ACCEPTED
• Kill掉Application
yarn application -kill <ApplicationId>
• yarn logs
• 查询Application日志
yarn logs -applicationId <ApplicationId>
• 查询Container日志
yarn logs -applicationId <ApplicationId> \
-containerId <ContainerId> \
-nodeAddress <NodeAddress>
端口是配置文件中yarn.nodemanager.webapp.address参数指定
• yarn applicationattempt
• 列出所有Application尝试的列表
yarn applicationattempt -list <ApplicationId>
• 打印ApplicationAttemp状态
yarn applicationattempt -status <ApplicationAttemptId>
• yarn container
• 列出所有Container
yarn container -list <ApplicationAttemptId>
• 打印Container状态
yarn container -status <ContainerId>
• yarn node
• 列出所有节点
yarn node -list -all
• yarn rmadmin
• 加载队列配置
yarn rmadmin –refreshQueues
• yarn queue
• 打印队列信息
yarn queue -status <QueueName>
• yarn classpath
• 打印Hadoop Jar包路径

提交作业到YARN上执行

提交mr作业到YARN上运行:
下列目录是Hadoop源码中的example

1
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar
1
2
//以这个命令进行提交作业
hadoop jar
1
2
//pi 2 3 为参数  
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3

当我们再次执行该作业时,会报错:
FileAlreadyExistsException:
Output directory hdfs://hadoop001:8020/output/wc already exists

常见基于Yarn的计算框架

MapReduce On Yarn

Spark

  • 基于内存的大数据计算引擎
  • MapReduce不适合的计算场景:
    • 迭代式作业
      • 机器学习,图算法需要迭代运行Mapper和Reducer多次
    • 交互式作业
      • 交互式数据分析,尤其是涉及到机器学习算法
    • 流式作业
      • 无穷无尽的流式数据,需要不断的对数据进行聚合计算
  • Spark提供了一种新的数据抽象RDD弹性分布式数据集,可以将数据存储在内存中,而不是存储到HDFS上,使得快速迭代计算成为可能。



Spark On Yarn